<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script>




//【示例】下面使用原型继承的方法设计类型继承。
function A(x){ 	// A类
    this.x1= x; 	// A的本地属性x1
    this.get1 = function(){	// A的本地方法get1()
        return this.x1;
    }
}
function B(x){ 	// B类
    this.x2 = x; 	// B的本地属性x2
    this.get2 = function(){	// B的本地方法get2()
        return this.x2 + this.x2;
    };
}
B.prototype = new A(1); 	// 原型对象继承A的实例
function C(x){ 	// C类
    this.x3 = x; 	// C的本地属性x3
    this.get3 = function(){	// C的本地方法get3()
        return this.x2 * this.x2;
    };
}
C.prototype = new B(2); 	// 原型对象继承B的实例


var b = new B(2); 	// 实例化B
var c = new C(3); 	// 实例化C
alert(b.x1); 	// 在实例对象b中调用A的属性x1，返回1
alert(c.x1); 	// 在实例对象c中调用A的属性x1，返回1
alert(c.get3());	// 在实例对象c中调用C的方法get3()，返回9
alert(c.get2());	// 在实例对象c中调用B的方法get2()，返回4

Function.prototype.method = function(name, func) {
    this.prototype[name] = func;
    return this;
};

Number.method('integer', function() { 
    return Math[this < 0 ? 'ceil' : 'floor'](this);
});
document.writeln((-10 / 3).integer());	//-3

String.method('trim', function() {
    return this.replace(/^\s+|\s+$/g, '');
});
document.writeln('"' + " abc ".trim() + '"');	// 'abc''

Function.prototype.method = function(name, func) {
    if(!this.prototype[name]) {
        this.prototype[name] = func;
        return this;
    }
};




</script>
</head>
<body>
</body>
</html>
